// 1. 普通实现
function getLength0(arg) {
  return arg.length
}

getLength0("aaaa")
getLength0(["abc", "cba", "nba"])

// 2.函数的重载
function getLength1(arg: string): number
function getLength1(arg: any[]): number
function getLength1(arg) {
  return arg.length
}

getLength1("aaaa")
getLength1(["abc", "cba", "nba"])

// 3.联合类型实现(优先考虑)
function getLength2(arg: string | any[]): number {
  return arg.length
}
getLength2("aaaa")
getLength2(["abc", "cba", "nba"])


// 4.对象类型实现
function getLength3(arg: { length: number }): number {
  return arg.length
}
getLength3("aaaa")
getLength3(["abc", "cba", "nba"])
getLength3({ length: 10 })
